package com.hm.cms.auto;

import org.springframework.boot.context.properties.ConfigurationProperties;

import lombok.Data;

/**
 * @author shishun.wang
 * @date 上午11:42:42 2017年9月27日
 * @version 1.0
 * @describe
 */
@Data
@ConfigurationProperties(prefix = "com.hm.cms.init")
public class SystemEnvConfigProperties {

	/**
	 * 是否开启开发模式
	 */
	private boolean devModel;

	/**
	 * 开发模式默认用户id
	 */
	private long devModelUser;

	/**
	 * 是否保护系统初始化用户
	 */
	private boolean protectInitUser;

	/**
	 * 静态化文件目录位置，/var/www/html
	 */
	private String staticizePath;

	/**
	 * 外部链接数量
	 */
	private Integer extLinkCount;
	
	/**
	 * 开启登录入口
	 */
	private boolean openLogin;

	/**
	 * 开启关注我二维码
	 */
	private boolean openAttentionQrCode;

	/**
	 * 关注我二维码
	 */
	private String attentionQrCode;
	
	/**
	 * 站点分享
	 */
	private String siteShare;

	/**
	 * 站定底部描述信息
	 */
	private String siteFooterInfo;
	
	/**
	 * 站点声明
	 */
	private String siteStatement;
	
	/**
	 * 每日最大访问量
	 */
	private Integer maxVisitCount;
	
	/**
	 * html静态化地址
	 */
	private String staticHtmlPath;
	
	/**
	 * html静态化域名地址
	 */
	private String staticHtmlDomainName;
	
	private RedisConfig redisConfig = new RedisConfig();
	
	@Data
	public class RedisConfig {

		private String host;

		private int port;

		private String password;

		private int timeout;

		private RedisPool pool = new RedisPool();

		@Data
		public class RedisPool {

			/**
			 * 可用连接实例的最大数目,如果赋值为-1,表示不限制.
			 */
			private int maxTotal;

			/**
			 * 控制一个Pool最多有多少个状态为idle(空闲的)jedis实例,默认值也是8
			 */
			private int maxIdle;

			/**
			 * 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时/如果超过等待时间,则直接抛出异常
			 */
			private int maxWaitMillis;

			/**
			 * 在borrow一个jedis实例时,是否提前进行validate操作,如果为true,则得到的jedis实例均是可用的
			 */
			private boolean testOnBorrow;
		}
	}
}
